#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//int Fun(int n, int k) {
//	if (k == 1) {
//		return n;
//	}
//	else {
//		return n * Fun(n,k - 1);
//	}
//
//}
//
//int main() {
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a,&b);
//	int ret = Fun(a,b);
//	printf("%d \n", ret);
//	return 0;
//}

//int Sum(int n) {
//	if (n < 10) {
//		return 1;
//	}
//	else {
//		return Sum(n / 10) + n % 10;
//	}
//
//}
//
//int main() {
//	int a = 0;
//	scanf("%d", &a);
//	int ret = Sum(a);
//	printf("%d \n", ret);
//	return 0;
//}

//int Strlen(char * str) {
//	if (*str == '\0') {
//		return 0;
//	}
//	else {
//		return 1 + Strlen(str + 1);
//	}
//}

//int Strlen(char* str) {
//	int count = 0;
//	while (*str != '\0') {
//		str++;
//		count++;
//	}
//	return count;
//}

//int main() {
//	char arr[] = "abcdefgl";
//	int ret = Strlen(arr);
//	printf("%d\n", ret);
//
//	return 0;
//}

//Daiying(int n) {
//
//	if (n < 10) {
//		printf("%d ", n);
//	}
//	else {
//		return Daiying(n / 10), printf("%d ", n % 10);
//	}
//}

//void Daiying(int n) {
//
//	if (n>10) 
//		 Daiying(n / 10);
//	
//		printf("%d ", n % 10);
//	
//}
//
//int main() {
//	int a = 0;
//	scanf("%d", &a);
//	Daiying(a);
//	return 0;
//}

//int Fib(int n) {
//	int count = 0;
//	if (n <= 2) {
//		 count=count+1;
//	}
//	else {
//		return Fib(n - 1)+Fib(n-2);
//	}
//}

int Fib(int n) {
	int a = 1;
	int b = 1;
	int c = 1;
	int i = 0;
	for (i = 3;i <= n;i++) {
		c = a + b;
		a = b;
		b = c;		
	}
	printf("%d\n", c);

}
int main() {
	int a = 0;
	scanf("%d", &a);
	Fib(a);

	return 0;
}

//int main() {
//	int a = 0;
//	scanf("%d", &a);
//	int ret = Fib(a);
//	printf("%d \n", ret);
//	return 0;
//}
